/**
 * 1、babel转码器的作用：
 * 将ES6转为ES5，以适应老版本的浏览器，也就是可以用ES6的方式编写程序，而不用担心现有环境是否支持。
 * 例如：下面的原始代码用了箭头函数，Babel 将其转为普通函数，就能在不支持箭头函数的 JavaScript 环境执行了。
 */

// 转码前
input.map(item => item + 1);

// 转码后
input.map(function (item){
    return item + 1;
})

// babel在项目目录中的安装命令
// npm install --save-dev @babel/core

/**
 * 2、babel的配置，配置文件.babelrc
 * 存放在项目的根目录下。使用 Babel 的第一步，就是配置这个文件。
 * 该文件用来设置转码规则和插件。
 */

// 1）基本格式：
// {
//     "presets": [],
//     "plugins": []
// }

// 2）presets字段设定转码规则，官方提供以下的规则集，你可以根据需要安装。

// # 最新转码规则
// npm install --save-dev @babel/preset-env

// # react 转码规则
// npm install --save-dev @babel/preset-react

// 3）然后，将这些规则加入.babelrc。
//   {
//     "presets": [
//       "@babel/env",
//       "@babel/preset-react"
//     ],
//     "plugins": []
//   }
// 注意，以下所有 Babel 工具和模块的使用，都必须先写好.babelrc。

// 3、命令行转码
// Babel 提供命令行工具@babel/cli，用于命令行转码。

// 1）安装命令
// npm install --save-dev @babel/cli

// 2）基本用法
// # 转码结果输出到标准输出
// $ npx babel example.js

// # 转码结果写入一个文件
// # --out-file 或 -o 参数指定输出文件
// $ npx babel example.js --out-file compiled.js
// # 或者
// $ npx babel example.js -o compiled.js

// # 整个目录转码
// # --out-dir 或 -d 参数指定输出目录
// $ npx babel src --out-dir lib
// # 或者
// $ npx babel src -d lib

// # -s 参数生成source map文件
// $ npx babel src -d lib -s